/* 
 * File:   ControllerActivity.hpp
 * Author: bd
 *
 * Created on March 27, 2011, 12:23 PM
 */

#ifndef CONTROLLERACTIVITY_HPP
#define	CONTROLLERACTIVITY_HPP
#include "Activity.hpp"

class ShortMsgItemDao;

class ControllerActivity : public Activity {
public:
    typedef boost::shared_ptr<ControllerActivity> ControllerActivityPtr;
public:
    ControllerActivity(const ControllerActivity& orig);
    explicit ControllerActivity(const std::string& name, const Configuration& config, Pool<ShortMsgItem>& pool);
    virtual ~ControllerActivity();

    //Member functions
    void start();
    void stop();

    //Getter - Setter

protected:
    void importItems(ShortMsgItemDao& dao, Pool<ShortMsgItem>& pool, const Configuration& config);
    void updateItems(ShortMsgItemDao& dao, Pool<ShortMsgItem>& pool, const Configuration& config);
    void terminateIfDone(Pool<ShortMsgItem>& pool, const Configuration& config);
private:
};

#endif	/* CONTROLLERACTIVITY_HPP */

